import axios from 'axios'
// toast在main.vue中引入，挂载在了vue实例上，但此处为js文件，需要重新引入
import { Toast } from 'vant'

// 封装axios用来发送请求
// 创建axios实例，并配置基地址和响应时长
const request = axios.create({
  baseURL: 'http://interview-api-t.itheima.net/h5',
  timeout: 5000 // 5秒后响应过时
})

// 请求拦截器
request.interceptors.request.use(function (config) {
  // 请求数据前的操作
  return config
}, function (err) {
  // 请求失败时的操作
  // 将promise对象状态改为reject并将错误信息返回
  return Promise.reject(err)
})

// 响应拦截器
request.interceptors.response.use(function (response) {
  // 对响应的数据的操作
  return response.data
}, function (err) {
  // 响应数据出错后的操作
  // 如果有错误信息，将错误信息传给toast显示给用户
  if (err.response) {
    Toast(err.response.data.message)
  }
  // 将promise对象状态改为reject并将错误信息返回
  return Promise.reject(err)
})
export default request
